package com.OtherExercises;

import java.util.ArrayList;

/**
 * Author: 王天培
 */
public class 第22题_ {//测试类

    public static void main(String[] args) {
        /**
         * 千里之行,始于足下
         */

        /*
        ②在main方法中完成以下功能：创建5个User对象并赋值，加入ArrayList<User>集合中，调用getUser方法并接收，遍历返回的新集合输出新集合中所有元素信息，格式如下：
        * */
        User u1 = new User("张三", 15, "男");
        User u2 = new User("李四", 19, "女");
        User u3 = new User("王五", 20, "女");
        User u4 = new User("赵六", 18, "男");
        User u5 = new User("王天培", 25, "男");
        ArrayList<User> list = new ArrayList<>();
        list.add(u1);
        list.add(u2);
        list.add(u3);
        list.add(u4);
        list.add(u5);

        ArrayList<User> newList = getUser(list);//调用并接收
        System.out.println("-----------------");
        System.out.println("原集合元素如下:");
        for (int i = 0; i < list.size(); i++) {
            System.out.println("姓名:" + list.get(i).getName() + "  年龄:" + list.get(i).getAge() + "  性别:" + list.get(i).getSex());
        }
        System.out.println("-----------------");
        System.out.println("处理后结果如下:");
        for (int i = 0; i < newList.size(); i++) {
            System.out.println("姓名:" + newList.get(i).getName() + "  年龄:" + newList.get(i).getAge() + "  性别:" + newList.get(i).getSex());
        }
        System.out.println("-----------------");
    }
//运行结果:
//-----------------
//原集合元素如下:
//姓名:张三  年龄:15  性别:男
//姓名:李四  年龄:19  性别:女
//姓名:王五  年龄:20  性别:女
//姓名:赵六  年龄:18  性别:男
//姓名:王天培  年龄:25  性别:男
//-----------------
//处理后结果如下:
//姓名:赵六  年龄:18  性别:男
//姓名:王天培  年龄:25  性别:男
//-----------------

    /*
     * ①定义方法，public static ArrayList<User> getUser(ArrayList<User> users)，获得年龄大于等于18岁，并且性别为 “男”的User，加入新的集合并返回。
     * */

    /**
     * 获得年龄大于等于18岁，并且性别为 “男”的User，加入新的集合并返回
     *
     * @param users
     * @return ArrayList<User>
     */
    public static ArrayList<User> getUser(ArrayList<User> users) {
        ArrayList<User> newList = new ArrayList<>();
        for (int i = 0; i < users.size(); i++) {
            if (users.get(i).getAge() >= 18 && users.get(i).getSex().equals("男")) {
                newList.add(users.get(i));
            }
        }
        return newList;
    }
}

/*
1.定义User类，包含空参、满参构造、以下成员变量及其get、set方法
    姓名 name（Sting 类型）
    年龄 age（int 类型）
    性别 sex（String 类型）
*/

/**
 * 用户实体类
 */
class User {
    private String name;//姓名
    private int age;//年龄
    private String sex;//性别

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }

    public User() {
    }

    public User(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}